Risk Signal: eKYC Checks
eKYC Checks provide a comprehensive global check on individual data elements such as name, address, date of birth, phone number or national ID (if provided). Checks provide a match/partial/no match response. This supports account onboarding use cases such as opening a bank account or a gaming account where you need to verify that the name, address, DOB, ID, and/or phone number are valid.
eKYC Checks supports both 1+1 and 2+2 checks. A 1+1 check looks for a single match of the input data against sources per country. A 2+2 checks and looks for two matches of the input data against different sources within the same country.
Prerequisite
The Creating or Updating Accounts request body may include an optional ekycCheck
object that includes a searchType
value. Allowed values are:
-
one
if requesting a 1+1 check -
two
if requesting a 2+2 check
If the object is not included in the request body the default value is one
.
Example Account Request Body
{ "customerInternalReference": "myCompany", "workflowDefinition": { "key": 10148, "capabilities": { "ekycCheck": { "searchType": "one" } } }, ... }
Supported Credentials
The following values can be uploaded as Prepared Data. Alternatively, they can be extracted by an upstream capability in a workflow.
To use Prepared Data with eKYC Checks as a standalone capability use workflow key 10148.
Key | Type | Mandatory | Description |
---|---|---|---|
firstName | string | yes | First name of the subject. |
lastName | string | yes | Last name of the subject. |
dob |
string |
no |
Date of birth, in yyyy/mm/dd format. |
address |
Object |
yes |
|
address.line1 |
string |
yes |
|
address.line2 |
string |
no |
|
address.city |
string |
yes |
City of residence as it appears on the Id. |
address.postalCode |
string |
yes |
Postal or zip code. |
address.subdivision |
string |
no |
City subdivision of residence as it appears on the Id. |
address.country |
string |
yes |
Country in ISO-3166-1 Alpha-3 Code or ISO-3166-1 Alpha-2 Code format. |
phoneNumber | String | no | Phone number of the subject in E.164 format. Country code is required. |
String | no | Optimal to include. | |
id | Object | no | See next row. |
id.idNumber | string | no | National ID number. |
id.type | string | no |
Type of national ID. |
Example: Prepared Data Body
{ "firstName": "B***", "lastName": "S****", "email": "b***j@gmail.com", "dob": "1977/01/01", "phoneNumber": "+91-9880001234", "id": { "idNumber": "VIMK98**27MDFLN***", "type": "ID_CARD }, "address": { "line1": "34", "postalCode": "560029", "city": "", "state": "", "subdivision": "", "country": "MEX" } }
Example Response of 1+1 check
"ekycCheck": [ { "id": "427accd1-c23f-4c6c-ba91-b85d84fe681c", "credentials": [ { "id": "61cf2916-97cd-4f39-b0c3-c1379812d9b5", "category": "DATA", "label": "DATA" } ], "decision": { "type": "PASSED", "details": { "label": "LOW_RISK" } }, "data": { "completeNameMatch": "MATCH", "initialNameMatch": "MATCH", "firstNameMatch": "MATCH", "lastNameMatch": "MATCH", "addressMatch": "MATCH", "houseNumberMatch": "MATCH", "thoroughfareMatch": "MATCH", "cityMatch": "MATCH", "stateMatch": "MATCH", "zipOrPinCodeMatch": "MATCH", "dateOfBirthMatch": "NOT_MATCH", "dateOfBirthDayMatch": "NOT_MATCH", "dateOfBirthMonthMatch": "NOT_MATCH", "dateOfBirthYearMatch": "MATCH", "phoneMatch": "MATCH", "datasourceType": "Commercial", "searchType": "1+1", "matchType": "1+1", "datasourceSummary": [ { "completeNameMatch": "MATCH", "initialNameMatch": "MATCH", "firstNameMatch": "MATCH", "lastNameMatch": "MATCH", "addressMatch": "MATCH", "houseNumberMatch": "MATCH", "thoroughfareMatch": "MATCH", "cityMatch": "MATCH", "stateMatch": "MATCH", "zipOrPinCodeMatch": "MATCH", "dateOfBirthYearMatch": "MATCH", "phoneMatch": "MATCH", "source": "CMM2" } ] },
Example Response of 2+2 check
"capabilities": { "ekycCheck": [ { "id": "b4b30e84-fcf6-4286-9c94-5ba81a20c084", "credentials": [ { "id": "292125ae-24b4-4d70-8311-c0329967563d", "category": "DATA", "label": "DATA" } ], "decision": { "type": "PASSED", "details": { "label": "LOW_RISK" } }, "data": { "completeNameMatch": "MATCH", "initialNameMatch": "MATCH", "firstNameMatch": "MATCH", "lastNameMatch": "MATCH", "addressMatch": "MATCH", "houseNumberMatch": "MATCH", "thoroughfareMatch": "MATCH", "cityMatch": "MATCH", "stateMatch": "MATCH", "zipOrPinCodeMatch": "MATCH", "dateOfBirthMatch": "NOT_MATCH", "dateOfBirthDayMatch": "NOT_MATCH", "dateOfBirthMonthMatch": "NOT_MATCH", "dateOfBirthYearMatch": "MATCH", "phoneMatch": "MATCH", "datasourceType": "Commercial,Postal", "searchType": "2+2", "matchType": "2+2", "datasourceSummary": [ { "completeNameMatch": "MATCH", "initialNameMatch": "MATCH", "firstNameMatch": "MATCH", "lastNameMatch": "MATCH", "addressMatch": "MATCH", "houseNumberMatch": "MATCH", "thoroughfareMatch": "MATCH", "cityMatch": "MATCH", "stateMatch": "MATCH", "zipOrPinCodeMatch": "MATCH", "dateOfBirthYearMatch": "MATCH", "phoneMatch": "MATCH", "source": "CMM2" }, { "completeNameMatch": "MATCH", "initialNameMatch": "MATCH", "firstNameMatch": "MATCH", "lastNameMatch": "MATCH", "addressMatch": "MATCH", "houseNumberMatch": "MATCH", "thoroughfareMatch": "MATCH", "cityMatch": "MATCH", "stateMatch": "MATCH", "zipOrPinCodeMatch": "MATCH", "dateOfBirthDayMatch": "NOT_MATCH", "dateOfBirthMonthMatch": "NOT_MATCH", "dateOfBirthYearMatch": "NOT_MATCH", "source": "PST1" } ] },
Decision Details Labels
Decision Type |
Label |
Description |
---|---|---|
PASSED |
LOW_RISK |
|
REJECTED |
HIGH_RISK |
|
WARNING |
MEDIUM_RISK |
|
NOT_EXECUTED |
VALIDATION_FAILED |
|
NOT_EXECUTED |
NOT_ENOUGH_DATA |
|
NOT_EXECUTED |
PRECONDITION_NOT_FULFILLED |
|
NOT_EXECUTED |
TECHNICAL_ERROR |
|
Data
Parameter |
Type |
Description |
---|---|---|
completeNameMatch |
string |
The match status of the combined first and last name values. |
initialNameMatch |
string |
The match status of the middle initial . |
firstNameMatch |
string |
The match status of the first name. |
lastNameMatch |
string |
The match status of the last name. |
nationalIdMatch |
string |
The match status of the ID. |
addressMatch |
string |
The match status of the complete address. |
addressLine1Match |
string |
The match status of the address first line. |
addressLine2Match |
string |
The match status of the address second line. |
cityMatch |
string |
The match status of the address city. |
zipOrPinCodeMatch |
string |
The match status of the address zip or PIN code. |
dateOfBirthMatch |
string |
The match status of the entire date of birth. |
dateOfBirthDayMatch |
string |
The match status of the date of birth day. |
dateOfBirthMonthMatch |
string |
The match status of the date of birth month. |
dateOfBirthYearMatch |
string |
The match status of the date of birth year. |
phoneMatch |
string |
The match status of the phone number. |
datasourceType |
string |
The country and the type of data source. The country name is spelled out with underscores replacing spaces. The possible types are:
Multiple sources may be listed, separated by a comma. |
searchType |
string |
Whether a MATCH must be found in 1 database or two databases. |